// components/Tabs/Tabs.js
Component({
  /**
   * 组件的属性列表
   * 
   * 接收过来的值，当data中的数据，直接用即可
   */
  properties: {
    // 父向子传递的值
    aaa: {
      type: String, // 类型
      value: ''     // 默认值
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    // 内部持有的值
    tabs: [
      {
        id: 0,
        name: '首页',
        isActive: true,
      },
      {
        id: 1,
        name: '原创',
        isActive: false,
      },
      {
        id: 2,
        name: '分类',
        isActive: false,
      },
      {
        id: 3,
        name: '关于',
        isActive: false,
      },
    ]
  },

  /**
   * 组件的方法列表
   */
  methods: {
    itemClic(e) {
      const dataset = e.currentTarget.dataset || {}
      const index = dataset.index || 0
      console.log('class-35 index=', index)

    
      // 解构 对 复杂类型进行解构的时候，复制了一份，变量的引用而已
      // 最严谨的做法，重新拷贝一份数组，再对这个数组的备份进行处理，
      // let tabs = JSON.parse(JSON.stringify(this.data.tabs))
      // 不要直接修改 this.data.数据
      // let {tabs} = this.data

      let list = this.data.tabs || [] // 异常处理

      // 第一种
      // for (let i = 0; i < list.length; i++) {
      //   const item = list[i] || {}
      //   item.isActive = false
      //   if (i === index) {
      //     item.isActive = true
      //   }
      // }

      // 第二种
      // list.forEach((v,i) => i===index?v.isActive=true:v.isActive=false)

      // 第三种 是第二种的全写
      list.forEach((v,i) => {
        if (i === index) {
          v.isActive = true
        }
        else {
          v.isActive = false
        }
        return v
      })

      this.setData({tabs: list})
    }
  }
})
